Add google input type
authorparkrrrr <parkrrrr@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Thu, 10 Feb 2005 23:21:58 +0000 (23:21 +0000)
committerparkrrrr <parkrrrr@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Thu, 10 Feb 2005 23:21:58 +0000 (23:21 +0000)
gpsbabel/Makefile
gpsbabel/README
gpsbabel/google.c [new file with mode: 0644]
gpsbabel/reference/google.arc [new file with mode: 0644]
gpsbabel/reference/google.xml [new file with mode: 0644]
gpsbabel/reference/googmap.sh [new file with mode: 0644]
gpsbabel/testo
gpsbabel/vecs.c

index 858de38bf8f5377103288fbe68d520c66db97a80..7dd93ec342a2df2146df6a4ae52641e14b4c00ce 100644 (file)
@@ -27,7 +27,7 @@ FMTS=magproto.o gpx.o geo.o mapsend.o mapsource.o garmin_tables.o \
        gpilots.o saroute.o navicache.o psitrex.o geoniche.o delgpl.o \
        ozi.o nmea.o text.o html.o palmdoc.o netstumbler.o hsa_ndv.o \
        igc.o brauniger_iq.o shape.o hiketech.o glogbook.o coastexp.o \
-       vcf.o overlay.o
+       vcf.o overlay.o google.o
 
 FILTERS=position.o duplicate.o arcdist.o polygon.o smplrout.o reverse_route.o sort.o stackfilter.o
 
@@ -124,166 +124,188 @@ mac-release:
 
 # Machine generated from here down.  
 
-arcdist.o: arcdist.c defs.h queue.h grtcirc.h
-brauniger_iq.o: brauniger_iq.c defs.h queue.h jeeps/gpsserial.h \
+arcdist.o: arcdist.c defs.h queue.h gbtypes.h grtcirc.h
+brauniger_iq.o: brauniger_iq.c defs.h queue.h gbtypes.h jeeps/gpsserial.h \
   jeeps/gps.h jeeps/gpsport.h jeeps/gpssend.h jeeps/gpsread.h \
   jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
   jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h \
   jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h \
   jeeps/gpsnmeaget.h
-cetus.o: cetus.c defs.h queue.h coldsync/palm.h coldsync/pdb.h
-copilot.o: copilot.c defs.h queue.h coldsync/palm.h coldsync/pdb.h
-csv_util.o: csv_util.c defs.h queue.h csv_util.h grtcirc.h
-delgpl.o: delgpl.c defs.h queue.h
-duplicate.o: duplicate.c defs.h queue.h
-easygps.o: easygps.c defs.h queue.h
-filter_vecs.o: filter_vecs.c defs.h queue.h
-garmin.o: garmin.c defs.h queue.h jeeps/gps.h jeeps/gpsport.h \
+cetus.o: cetus.c defs.h queue.h gbtypes.h coldsync/palm.h coldsync/pdb.h
+coastexp.o: coastexp.c defs.h queue.h gbtypes.h xmlgeneric.h uuid.h
+copilot.o: copilot.c defs.h queue.h gbtypes.h coldsync/palm.h \
+  coldsync/pdb.h
+csv_util.o: csv_util.c defs.h queue.h gbtypes.h csv_util.h grtcirc.h
+delgpl.o: delgpl.c defs.h queue.h gbtypes.h
+duplicate.o: duplicate.c defs.h queue.h gbtypes.h
+easygps.o: easygps.c defs.h queue.h gbtypes.h
+filter_vecs.o: filter_vecs.c defs.h queue.h gbtypes.h
+garmin.o: garmin.c defs.h queue.h gbtypes.h jeeps/gps.h jeeps/gpsport.h \
   jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h jeeps/gpsutil.h \
   jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h jeeps/gpsfmt.h \
   jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h jeeps/gpsrqst.h \
   jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h jeeps/gpsnmeaget.h \
   garmin_tables.h
 garmin_tables.o: garmin_tables.c garmin_tables.h
-gcdb.o: gcdb.c defs.h queue.h coldsync/palm.h coldsync/pdb.h
-geo.o: geo.c defs.h queue.h
-geoniche.o: geoniche.c defs.h queue.h coldsync/palm.h coldsync/pdb.h
-gpilots.o: gpilots.c defs.h queue.h coldsync/palm.h coldsync/pdb.h \
-  garmin_tables.h
-gpspilot.o: gpspilot.c defs.h queue.h coldsync/palm.h coldsync/pdb.h
-gpsutil.o: gpsutil.c defs.h queue.h magellan.h
-gpx.o: gpx.c defs.h queue.h
-grtcirc.o: grtcirc.c defs.h queue.h
-holux.o: holux.c defs.h queue.h holux.h
-hsa_ndv.o: hsa_ndv.c defs.h queue.h
-html.o: html.c defs.h queue.h jeeps/gpsmath.h jeeps/gps.h jeeps/gpsport.h \
-  jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h jeeps/gpsutil.h \
-  jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h jeeps/gpsfmt.h \
-  jeeps/gpsnmea.h jeeps/gpsmem.h jeeps/gpsrqst.h jeeps/gpsinput.h \
-  jeeps/gpsproj.h jeeps/gpsnmeafmt.h jeeps/gpsnmeaget.h
-igc.o: igc.c defs.h queue.h
-internal_styles.o: internal_styles.c defs.h queue.h
-magnav.o: magnav.c defs.h queue.h coldsync/palm.h coldsync/pdb.h
-magproto.o: magproto.c defs.h queue.h magellan.h
-main.o: main.c defs.h queue.h
-mapsend.o: mapsend.c defs.h queue.h mapsend.h magellan.h
-mapsource.o: mapsource.c defs.h queue.h garmin_tables.h
-mkshort.o: mkshort.c defs.h queue.h
-navicache.o: navicache.c defs.h queue.h
-coastexp.o: coastexp.c defs.h queue.h
-netstumbler.o: netstumbler.c defs.h queue.h csv_util.h
-nmea.o: nmea.c defs.h queue.h
-ozi.o: ozi.c defs.h queue.h csv_util.h
-palmdoc.o: palmdoc.c defs.h queue.h jeeps/gpsmath.h jeeps/gps.h \
+gcdb.o: gcdb.c defs.h queue.h gbtypes.h coldsync/palm.h coldsync/pdb.h
+geo.o: geo.c defs.h queue.h gbtypes.h xmlgeneric.h
+geoniche.o: geoniche.c defs.h queue.h gbtypes.h coldsync/palm.h \
+  coldsync/pdb.h
+glogbook.o: glogbook.c defs.h queue.h gbtypes.h xmlgeneric.h
+google.o: google.c defs.h queue.h gbtypes.h xmlgeneric.h
+gpilots.o: gpilots.c defs.h queue.h gbtypes.h coldsync/palm.h \
+  coldsync/pdb.h garmin_tables.h
+gpspilot.o: gpspilot.c defs.h queue.h gbtypes.h coldsync/palm.h \
+  coldsync/pdb.h
+gpsutil.o: gpsutil.c defs.h queue.h gbtypes.h magellan.h
+gpx.o: gpx.c defs.h queue.h gbtypes.h
+grtcirc.o: grtcirc.c defs.h queue.h gbtypes.h
+hiketech.o: hiketech.c defs.h queue.h gbtypes.h xmlgeneric.h
+holux.o: holux.c defs.h queue.h gbtypes.h holux.h
+hsa_ndv.o: hsa_ndv.c defs.h queue.h gbtypes.h
+html.o: html.c defs.h queue.h gbtypes.h jeeps/gpsmath.h jeeps/gps.h \
+  jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
+  jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
+  jeeps/gpsfmt.h jeeps/gpsnmea.h jeeps/gpsmem.h jeeps/gpsrqst.h \
+  jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h jeeps/gpsnmeaget.h
+igc.o: igc.c defs.h queue.h gbtypes.h
+internal_styles.o: internal_styles.c defs.h queue.h gbtypes.h
+magnav.o: magnav.c defs.h queue.h gbtypes.h coldsync/palm.h \
+  coldsync/pdb.h
+magproto.o: magproto.c defs.h queue.h gbtypes.h magellan.h
+main.o: main.c defs.h queue.h gbtypes.h
+mapsend.o: mapsend.c defs.h queue.h gbtypes.h mapsend.h magellan.h
+mapsource.o: mapsource.c defs.h queue.h gbtypes.h garmin_tables.h
+mkshort.o: mkshort.c defs.h queue.h gbtypes.h
+navicache.o: navicache.c defs.h queue.h gbtypes.h
+netstumbler.o: netstumbler.c defs.h queue.h gbtypes.h csv_util.h
+nmea.o: nmea.c defs.h queue.h gbtypes.h
+overlay.o: overlay.c defs.h queue.h gbtypes.h grtcirc.h
+ozi.o: ozi.c defs.h queue.h gbtypes.h csv_util.h
+palmdoc.o: palmdoc.c defs.h queue.h gbtypes.h jeeps/gpsmath.h jeeps/gps.h \
   jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
   jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
   jeeps/gpsfmt.h jeeps/gpsnmea.h jeeps/gpsmem.h jeeps/gpsrqst.h \
   jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h jeeps/gpsnmeaget.h \
   coldsync/palm.h coldsync/pdb.h
-pcx.o: pcx.c defs.h queue.h garmin_tables.h
-polygon.o: polygon.c defs.h queue.h
-position.o: position.c defs.h queue.h grtcirc.h
-psitrex.o: psitrex.c defs.h queue.h garmin_tables.h
-psp.o: psp.c defs.h queue.h
+pcx.o: pcx.c defs.h queue.h gbtypes.h garmin_tables.h
+polygon.o: polygon.c defs.h queue.h gbtypes.h
+position.o: position.c defs.h queue.h gbtypes.h grtcirc.h
+psitrex.o: psitrex.c defs.h queue.h gbtypes.h garmin_tables.h
+psp.o: psp.c defs.h queue.h gbtypes.h
 queue.o: queue.c queue.h
-quovadis.o: quovadis.c quovadis.h defs.h queue.h coldsync/palm.h \
-  coldsync/pdb.h
-reverse_route.o: reverse_route.c defs.h queue.h
-route.o: route.c defs.h queue.h
-saroute.o: saroute.c defs.h queue.h
-shape.o: shape.c defs.h queue.h shapelib/shapefil.h
-smplrout.o: smplrout.c defs.h queue.h grtcirc.h
-sort.o: sort.c defs.h queue.h
-stackfilter.o: stackfilter.c defs.h queue.h
-text.o: text.c defs.h queue.h jeeps/gpsmath.h jeeps/gps.h jeeps/gpsport.h \
-  jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h jeeps/gpsutil.h \
-  jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h jeeps/gpsfmt.h \
-  jeeps/gpsnmea.h jeeps/gpsmem.h jeeps/gpsrqst.h jeeps/gpsinput.h \
-  jeeps/gpsproj.h jeeps/gpsnmeafmt.h jeeps/gpsnmeaget.h
-tiger.o: tiger.c defs.h queue.h csv_util.h
-tmpro.o: tmpro.c defs.h queue.h csv_util.h
-tpg.o: tpg.c defs.h queue.h jeeps/gpsmath.h jeeps/gps.h jeeps/gpsport.h \
-  jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h jeeps/gpsutil.h \
-  jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h jeeps/gpsfmt.h \
-  jeeps/gpsnmea.h jeeps/gpsmem.h jeeps/gpsrqst.h jeeps/gpsinput.h \
-  jeeps/gpsproj.h jeeps/gpsnmeafmt.h jeeps/gpsnmeaget.h
-util.o: util.c defs.h queue.h
+quovadis.o: quovadis.c quovadis.h defs.h queue.h gbtypes.h \
+  coldsync/palm.h coldsync/pdb.h
+reverse_route.o: reverse_route.c defs.h queue.h gbtypes.h
+route.o: route.c defs.h queue.h gbtypes.h
+saroute.o: saroute.c defs.h queue.h gbtypes.h
+shape.o: shape.c defs.h queue.h gbtypes.h shapelib/shapefil.h
+smplrout.o: smplrout.c defs.h queue.h gbtypes.h grtcirc.h
+sort.o: sort.c defs.h queue.h gbtypes.h
+stackfilter.o: stackfilter.c defs.h queue.h gbtypes.h
+text.o: text.c defs.h queue.h gbtypes.h jeeps/gpsmath.h jeeps/gps.h \
+  jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
+  jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
+  jeeps/gpsfmt.h jeeps/gpsnmea.h jeeps/gpsmem.h jeeps/gpsrqst.h \
+  jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h jeeps/gpsnmeaget.h
+tiger.o: tiger.c defs.h queue.h gbtypes.h csv_util.h
+tmpro.o: tmpro.c defs.h queue.h gbtypes.h csv_util.h
+tpg.o: tpg.c defs.h queue.h gbtypes.h jeeps/gpsmath.h jeeps/gps.h \
+  jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
+  jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
+  jeeps/gpsfmt.h jeeps/gpsnmea.h jeeps/gpsmem.h jeeps/gpsrqst.h \
+  jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h jeeps/gpsnmeaget.h
+util.o: util.c defs.h queue.h gbtypes.h
 util_crc.o: util_crc.c
-vecs.o: vecs.c defs.h queue.h csv_util.h
-vmem.o: vmem.c defs.h queue.h
-waypt.o: waypt.c defs.h queue.h
-xcsv.o: xcsv.c defs.h queue.h csv_util.h
+uuid.o: uuid.c uuid.h
+vcf.o: vcf.c defs.h queue.h gbtypes.h jeeps/gpsmath.h jeeps/gps.h \
+  jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
+  jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
+  jeeps/gpsfmt.h jeeps/gpsnmea.h jeeps/gpsmem.h jeeps/gpsrqst.h \
+  jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h jeeps/gpsnmeaget.h
+vecs.o: vecs.c defs.h queue.h gbtypes.h csv_util.h
+vmem.o: vmem.c defs.h queue.h gbtypes.h
+waypt.o: waypt.c defs.h queue.h gbtypes.h
+xcsv.o: xcsv.c defs.h queue.h gbtypes.h csv_util.h
+xmlgeneric.o: xmlgeneric.c defs.h queue.h gbtypes.h xmlgeneric.h
 coldsync/pdb.o: coldsync/pdb.c coldsync/config.h coldsync/palm.h \
   coldsync/pdb.h
 coldsync/util.o: coldsync/util.c coldsync/config.h coldsync/pconn/util.h \
   coldsync/palm.h
-jeeps/gpsapp.o: jeeps/gpsapp.c jeeps/gps.h defs.h queue.h jeeps/gpsport.h \
-  jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h jeeps/gpsutil.h \
-  jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h jeeps/gpsfmt.h \
-  jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h jeeps/gpsrqst.h \
-  jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h jeeps/gpsnmeaget.h
-jeeps/gpscom.o: jeeps/gpscom.c jeeps/gps.h defs.h queue.h jeeps/gpsport.h \
-  jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h jeeps/gpsutil.h \
-  jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h jeeps/gpsfmt.h \
-  jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h jeeps/gpsrqst.h \
-  jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h jeeps/gpsnmeaget.h
-jeeps/gpslibusb.o: jeeps/gpslibusb.c
-jeeps/gpsmath.o: jeeps/gpsmath.c jeeps/gps.h defs.h queue.h \
+jeeps/gpsapp.o: jeeps/gpsapp.c jeeps/gps.h defs.h queue.h gbtypes.h \
   jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
   jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
   jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h \
   jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h \
-  jeeps/gpsnmeaget.h jeeps/gpsdatum.h
-jeeps/gpsmem.o: jeeps/gpsmem.c jeeps/gps.h defs.h queue.h jeeps/gpsport.h \
-  jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h jeeps/gpsutil.h \
-  jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h jeeps/gpsfmt.h \
-  jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h jeeps/gpsrqst.h \
-  jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h jeeps/gpsnmeaget.h \
-  jeeps/garminusb.h
-jeeps/gpsprot.o: jeeps/gpsprot.c jeeps/gps.h defs.h queue.h \
+  jeeps/gpsnmeaget.h
+jeeps/gpscom.o: jeeps/gpscom.c jeeps/gps.h defs.h queue.h gbtypes.h \
   jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
   jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
   jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h \
   jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h \
   jeeps/gpsnmeaget.h
-jeeps/gpsread.o: jeeps/gpsread.c jeeps/gps.h defs.h queue.h \
+jeeps/gpslibusb.o: jeeps/gpslibusb.c jeeps/gps.h defs.h queue.h gbtypes.h \
   jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
   jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
   jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h \
   jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h \
-  jeeps/gpsnmeaget.h
-jeeps/gpsrqst.o: jeeps/gpsrqst.c jeeps/gps.h defs.h queue.h \
+  jeeps/gpsnmeaget.h jeeps/garminusb.h
+jeeps/gpsmath.o: jeeps/gpsmath.c jeeps/gps.h defs.h queue.h gbtypes.h \
+  jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
+  jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
+  jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h \
+  jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h \
+  jeeps/gpsnmeaget.h jeeps/gpsdatum.h
+jeeps/gpsmem.o: jeeps/gpsmem.c jeeps/gps.h defs.h queue.h gbtypes.h \
+  jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
+  jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
+  jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h \
+  jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h \
+  jeeps/gpsnmeaget.h jeeps/garminusb.h
+jeeps/gpsprot.o: jeeps/gpsprot.c jeeps/gps.h defs.h queue.h gbtypes.h \
   jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
   jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
   jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h \
   jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h \
   jeeps/gpsnmeaget.h
-jeeps/gpssend.o: jeeps/gpssend.c jeeps/gps.h defs.h queue.h \
+jeeps/gpsread.o: jeeps/gpsread.c jeeps/gps.h defs.h queue.h gbtypes.h \
   jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
   jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
   jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h \
   jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h \
   jeeps/gpsnmeaget.h
-jeeps/gpsserial.o: jeeps/gpsserial.c jeeps/gps.h defs.h queue.h \
+jeeps/gpsrqst.o: jeeps/gpsrqst.c jeeps/gps.h defs.h queue.h gbtypes.h \
   jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
   jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
   jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h \
   jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h \
   jeeps/gpsnmeaget.h
-jeeps/gpsusbread.o: jeeps/gpsusbread.c jeeps/gps.h defs.h queue.h \
+jeeps/gpssend.o: jeeps/gpssend.c jeeps/gps.h defs.h queue.h gbtypes.h \
   jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
   jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
   jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h \
   jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h \
-  jeeps/gpsnmeaget.h jeeps/garminusb.h
-jeeps/gpsusbsend.o: jeeps/gpsusbsend.c jeeps/gps.h defs.h queue.h \
+  jeeps/gpsnmeaget.h
+jeeps/gpsserial.o: jeeps/gpsserial.c jeeps/gps.h defs.h queue.h gbtypes.h \
   jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
   jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
   jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h \
   jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h jeeps/gpsnmeafmt.h \
-  jeeps/gpsnmeaget.h jeeps/garminusb.h
-jeeps/gpsusbstub.o: jeeps/gpsusbstub.c jeeps/garminusb.h
-jeeps/gpsutil.o: jeeps/gpsutil.c jeeps/gps.h defs.h queue.h \
+  jeeps/gpsnmeaget.h
+jeeps/gpsusbread.o: jeeps/gpsusbread.c jeeps/gps.h defs.h queue.h \
+  gbtypes.h jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h \
+  jeeps/gpsread.h jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h \
+  jeeps/gpscom.h jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsnmea.h \
+  jeeps/gpsmem.h jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h \
+  jeeps/gpsnmeafmt.h jeeps/gpsnmeaget.h jeeps/garminusb.h
+jeeps/gpsusbsend.o: jeeps/gpsusbsend.c jeeps/gps.h defs.h queue.h \
+  gbtypes.h jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h \
+  jeeps/gpsread.h jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h \
+  jeeps/gpscom.h jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsnmea.h \
+  jeeps/gpsmem.h jeeps/gpsrqst.h jeeps/gpsinput.h jeeps/gpsproj.h \
+  jeeps/gpsnmeafmt.h jeeps/gpsnmeaget.h jeeps/garminusb.h
+jeeps/gpsusbstub.o: jeeps/gpsusbstub.c
+jeeps/gpsutil.o: jeeps/gpsutil.c jeeps/gps.h defs.h queue.h gbtypes.h \
   jeeps/gpsport.h jeeps/gpsserial.h jeeps/gpssend.h jeeps/gpsread.h \
   jeeps/gpsutil.h jeeps/gpsapp.h jeeps/gpsprot.h jeeps/gpscom.h \
   jeeps/gpsfmt.h jeeps/gpsmath.h jeeps/gpsnmea.h jeeps/gpsmem.h \
index 18911bd3c77091310b30d36a636daf6f50cc837d..887fbfb1e89005affb55450539750d06a785d223 100644 (file)
@@ -102,8 +102,23 @@ THE FORMATS
        dumps by adding "-D9" to the command line, like:
 
                gpsbabel -D9 -i garmin -f usb: -o gpx -F blah.gpx
-       
 
+    GOOGLE
+        
+        This format is designed to read the XML emitted when you tack
+        "&output=xml" onto the end of a Google Maps URL (use the "link
+        to this page" option to get a usable URL.)  This allows you to 
+        plan a route using Google Maps, then download it and use it in
+        your own mapping program or GPS receiver.  If you use a Unix-
+        compatible operating system, this shell script might be useful:
+
+        #!/bin/sh
+        FROM="233 S. Wacker, Chicago, IL"
+        TO="1060 W. Addison, Chicago, IL"
+        wget -O - "http://maps.google.com/maps?q=$FROM to $TO&output=xml" \
+           2>/dev/null >google_map.xml
+
+        gpsbabel -i google -f google_map.xml -o gpx -F google_map.gpx
 
     GPSMAN
 
diff --git a/gpsbabel/google.c b/gpsbabel/google.c
new file mode 100644 (file)
index 0000000..22e1747
--- /dev/null
@@ -0,0 +1,180 @@
+/* 
+    Copyright (C) 2002 Robert Lipe, robertlipe@usa.net
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA
+
+ */
+#include "defs.h"
+#include "xmlgeneric.h"
+
+static char *encoded_points = NULL;
+static char *encoded_levels = NULL;
+
+FILE *fd;
+
+static long serial = 0;
+
+#define MYNAME "google"
+#define MY_CBUF 4096
+
+#if NO_EXPAT
+void
+google_rd_init(const char *fname)
+{
+       fatal(MYNAME ": This build excluded Google Maps support because expat was not installed.\n");
+}
+
+void
+google_read(void)
+{
+}
+#else
+
+static xg_callback      goog_points, goog_levels, goog_poly_e;
+
+static 
+xg_tag_mapping google_map[] = {
+       { goog_points,  cb_cdata,       "/page/directions/polyline/points" },
+       { goog_levels,  cb_cdata,       "/page/directions/polyline/levels" },
+       { goog_poly_e,  cb_end,         "/page/directions/polyline" },
+       { NULL,         0,              NULL }
+};
+
+void goog_points( const char *args, const char **unused )
+{
+       if (args)  
+       {
+               if ( encoded_points )
+               {
+                       encoded_points = xstrappend( encoded_points, args );
+               }
+               else 
+               {
+                       encoded_points = xstrdup(args);
+               }
+       }
+}
+
+void goog_levels( const char *args, const char **unused )
+{
+       if (args)  
+       {
+               if ( encoded_levels )
+               {
+                       encoded_levels = xstrappend( encoded_levels, args );
+               }
+               else 
+               {
+                       encoded_levels = xstrdup(args);
+               }
+       }
+}
+
+static long decode_goog64( char **str )
+{
+       long result = 0;
+       unsigned char c = 0;
+       unsigned char shift = 0;
+       
+       do 
+       {
+               c = (unsigned char)(*(*str)++)-'?';
+               result |= (c & 31)<<shift;
+               shift += 5;
+       } while ( c & ~31 );
+       
+       if ( result & 1 ) 
+       {
+               result = ~result;
+       }
+       return result/2;
+}
+
+void goog_poly_e( const char *args, const char **unused )
+{
+       long lat = 0;
+       long lon = 0;
+       long level = 0;
+        char *str = encoded_points;
+       char *lstr = encoded_levels;
+       
+       route_head *track_head = route_head_alloc();
+       route_add_head(track_head);
+
+       while ( str && *str ) 
+       {
+               lat += decode_goog64( &str );
+               lon += decode_goog64( &str );
+               
+               level = 0;
+               if ( lstr && *lstr ) 
+               {
+                       level = decode_goog64( &lstr );
+               } 
+
+               {
+                       waypoint *wpt_tmp = waypt_new();
+                       wpt_tmp->latitude = lat / 100000.0;
+                       wpt_tmp->longitude = lon / 100000.0;
+                       wpt_tmp->route_priority=level;
+                       wpt_tmp->shortname = (char *) xmalloc(7);
+                       sprintf( wpt_tmp->shortname, "\\%5.5x", serial++ );
+                       route_add_wpt(track_head, wpt_tmp);
+               }
+       }
+       
+       if ( encoded_points ) 
+       {
+               xfree( encoded_points );
+               encoded_points = NULL;
+       }
+       if ( encoded_levels )
+       {
+               xfree( encoded_levels );
+               encoded_levels = NULL;
+       }
+}
+
+void
+google_rd_init(const char *fname)
+{
+       xml_init(fname, google_map);
+}
+
+void
+google_read(void)
+{
+       xml_read();
+}
+#endif
+
+void
+google_rd_deinit(void)
+{
+       xml_deinit();
+}
+
+ff_vecs_t google_vecs = {
+       ff_type_file,
+        { ff_cap_none, ff_cap_read, ff_cap_none},
+       google_rd_init, 
+       NULL,
+       google_rd_deinit,
+       NULL,
+       google_read,
+       NULL,
+       NULL, 
+       NULL
+};
diff --git a/gpsbabel/reference/google.arc b/gpsbabel/reference/google.arc
new file mode 100644 (file)
index 0000000..c216f18
--- /dev/null
@@ -0,0 +1,111 @@
+41.87895       -87.63665
+41.87924       -87.63666
+41.87937       -87.63666
+41.87952       -87.63667
+41.88063       -87.63672
+41.88126       -87.63673
+41.88194       -87.63676
+41.88194       -87.63676
+41.88206       -87.63676
+41.88257       -87.63678
+41.88301       -87.63679
+41.88318       -87.63678
+41.88380       -87.63681
+41.88447       -87.63683
+41.88506       -87.63686
+41.88519       -87.63686
+41.88542       -87.63686
+41.88574       -87.63682
+41.88574       -87.63682
+41.88583       -87.63678
+41.88595       -87.63666
+41.88677       -87.63538
+41.88677       -87.63528
+41.88677       -87.63477
+41.88677       -87.63394
+41.88677       -87.63249
+41.88677       -87.63249
+41.88696       -87.63248
+41.88710       -87.63248
+41.88780       -87.63248
+41.88780       -87.63248
+41.88919       -87.63254
+41.89000       -87.63254
+41.89078       -87.63257
+41.89160       -87.63260
+41.89198       -87.63261
+41.89240       -87.63263
+41.89322       -87.63264
+41.89401       -87.63266
+41.89482       -87.63267
+41.89562       -87.63269
+41.89664       -87.63271
+41.89796       -87.63273
+41.89926       -87.63278
+41.90053       -87.63283
+41.90183       -87.63288
+41.90312       -87.63290
+41.90388       -87.63292
+41.90576       -87.63300
+41.90772       -87.63305
+41.90917       -87.63309
+41.91117       -87.63313
+41.91117       -87.63313
+41.91265       -87.63317
+41.91289       -87.63316
+41.91289       -87.63316
+41.91299       -87.63310
+41.91307       -87.63301
+41.91314       -87.63284
+41.91314       -87.63284
+41.91380       -87.63324
+41.91485       -87.63388
+41.91560       -87.63433
+41.91658       -87.63494
+41.91842       -87.63603
+41.91842       -87.63603
+41.91889       -87.63636
+41.92015       -87.63718
+41.92195       -87.63822
+41.92374       -87.63928
+41.92497       -87.64005
+41.92556       -87.64040
+41.92678       -87.64115
+41.92697       -87.64127
+41.92730       -87.64147
+41.92778       -87.64172
+41.92852       -87.64217
+41.92865       -87.64224
+41.92951       -87.64276
+41.92963       -87.64288
+41.92982       -87.64311
+41.92995       -87.64335
+41.93067       -87.64382
+41.93131       -87.64418
+41.93180       -87.64449
+41.93208       -87.64466
+41.93242       -87.64479
+41.93277       -87.64483
+41.93277       -87.64483
+41.93368       -87.64551
+41.93452       -87.64622
+41.93478       -87.64645
+41.93549       -87.64700
+41.93558       -87.64707
+41.93639       -87.64774
+41.93780       -87.64888
+41.93811       -87.64913
+41.93811       -87.64913
+41.93903       -87.64986
+41.93992       -87.65062
+41.94175       -87.65203
+41.94241       -87.65255
+41.94352       -87.65349
+41.94429       -87.65410
+41.94429       -87.65410
+41.94443       -87.65420
+41.94558       -87.65510
+41.94654       -87.65592
+41.94718       -87.65639
+41.94718       -87.65639
+41.94719       -87.65553
diff --git a/gpsbabel/reference/google.xml b/gpsbabel/reference/google.xml
new file mode 100644 (file)
index 0000000..33ff7f3
--- /dev/null
@@ -0,0 +1 @@
+<?xml version="1.0"?><page><title>233 S. Wacker, Chicago, IL to 1060 W. Addison, Chicago, IL</title><query>233 S. Wacker, Chicago, IL to 1060 W. Addison, Chicago, IL</query><center lat="41.913070" lng="-87.644435"/><span lat="0.068240" lng="0.023910"/><directions><source><address><line>233 S Upper Wacker Dr</line><line>Chicago, IL 60606</line></address></source><destination><address><line>1060 W Addison St</line><line>Chicago, IL 60613</line></address></destination><polyline numLevels="4" zoomFactor="32"><points>mnr~F`p{uOy@@Y?]@}EH}B@gCD??W?eBBwA@a@A{BDeCBuBDY?m@?_AG??QGWWcD_G?S?eB?eD?aH??e@A[?kC???uGJaD?{CDcDDkA@sABcD@}CBaD@_DBkEBgGBcGH}FHcGHaGBwCBwJNgKHaHFoKF??gHFo@A??SKOQMa@??cCnAqE~BuCxAcExBoJxE??}A`A{FbDgJnEeJrEuFxCuBdAsFtCe@VaAf@_Bp@sCxAYLkDfBWVe@l@Yn@oC|A_CfAaB|@w@`@cAXeAF??uDfCgDlCs@l@mClBQLaDdCyGbF}@p@??wDpCqDvCmJxGcCfB}EzDyCxB??[ReFrD_EbD_C|A??AkD</points><levels>B?????BB??????@??BB?@@???BB??BB?????@?????@?????@??BB?BB?@BB????@??@?@????@???@?@@@??@@A?@?????????@?@@?????BBB</levels></polyline><segments meters="8443" seconds="543" distance="5.2 mi" time="9 mins"><segment id="seg0" pointIndex="0" meters="332" seconds="21" distance="0.2 mi" time="21 secs">Head  <b>north</b> from <b>S Upper Wacker Dr</b></segment><segment id="seg1" pointIndex="7" meters="422" seconds="27" distance="0.3 mi" time="27 secs">Continue on <b>N Upper Wacker Dr</b></segment><segment id="seg2" pointIndex="18" meters="406" seconds="26" distance="0.3 mi" time="26 secs">Bear <b>right</b> at <b>W Upper Wacker Dr</b></segment><segment id="seg3" pointIndex="26" meters="114" seconds="7" distance="0.1 mi" time="7 secs">Turn <b>left</b> at <b>N La Salle St</b></segment><segment id="seg4" pointIndex="30" meters="2597" seconds="167" distance="1.6 mi" time="2 mins">Continue on <b>N La Salle Blvd</b></segment><segment id="seg5" pointIndex="52" meters="191" seconds="12" distance="0.1 mi" time="12 secs">Continue on <b>N La Salle Dr</b></segment><segment id="seg6" pointIndex="55" meters="40" seconds="3" distance="0.0 mi" time="2 secs">Bear <b>right</b> at <b>W Eugenie St</b></segment><segment id="seg7" pointIndex="59" meters="4269" seconds="274" distance="2.7 mi" time="4 mins">Turn <b>left</b> at <b>N Clark St</b></segment><segment id="seg8" pointIndex="109" meters="71" seconds="5" distance="0.0 mi" time="4 secs">Turn <b>right</b> at <b>W Addison St</b></segment></segments></directions></page>
\ No newline at end of file
diff --git a/gpsbabel/reference/googmap.sh b/gpsbabel/reference/googmap.sh
new file mode 100644 (file)
index 0000000..83a73d3
--- /dev/null
@@ -0,0 +1,5 @@
+
+FROM="233 S. Wacker, Chicago, IL"
+TO="1060 W. Addison, Chicago, IL"
+wget -O - "http://maps.google.com/maps?q=$FROM to $TO&output=xml" 2>/dev/null
+
index 259f4d3e8ee37d337b22626575a49822f72ead7a..c1c154d9ac97796c70f18a24aad82f3718551d0d 100755 (executable)
@@ -568,6 +568,12 @@ compare ${TMPDIR}/igc_sed.out reference/igc2_igc.out
 ${PNAME} -i igc -f ${TMPDIR}/igc.out -o gpx -F ${TMPDIR}/igc.gpx
 compare ${TMPDIR}/igc.gpx reference/igc2_gpx.out
 
+#
+# Google Maps XML test
+#
+rm -f ${TMPDIR}/google.out
+${PNAME} -i google -f reference/google.xml -o arc -F ${TMPDIR}/google.out
+compare ${TMPDIR}/google.out reference/google.arc
 
 #
 # XCSV "human readable" tests
index 718b760eb8057a7fc763d8d2c6f9648a554bada4..662cbba01e9f2e974ca5794bd449cfb1aa59db34 100644 (file)
@@ -73,6 +73,7 @@ extern ff_vecs_t hiketech_vecs;
 extern ff_vecs_t glogbook_vecs;
 extern ff_vecs_t vcf_vecs;
 extern ff_vecs_t overlay_vecs;
+extern ff_vecs_t google_vecs;
 
 static
 vecs_t vec_list[] = {
@@ -335,6 +336,12 @@ vecs_t vec_list[] = {
                "GeoGrid-Viewer",
                "ovl"
        },
+       {
+               &google_vecs,
+               "google",
+               "Google Maps XML",
+               "xml"
+       },
        {
                NULL,
                NULL,